Skip to content

R5000 installer and optional features - #80

Merged
techomancer merged 2 commits into
techomancer:mainfrom
danifunker:r5000-installer-and-optional-features
Aug 13, 2026
Merged

R5000 installer and optional features#80
techomancer merged 2 commits into
techomancer:mainfrom
danifunker:r5000-installer-and-optional-features

Conversation

@danifunker

Copy link
Copy Markdown
Contributor

Adds windows installer for R5000 and separates the optional features as per discussion:

removes jit and ultra64 from base build.

danifunker and others added 2 commits August 11, 2026 05:54
The R4400 and R5000 builds differ only in the emulated CPU, but that is a
compile-time choice (the cache model differs deeply), so they are two separate
binaries rather than one installer with a runtime switch. They shared an AppId,
AppName, and DefaultDirName, so installing one over the other was an in-place
upgrade: same folder, same uninstall entry, the previous iris-gui.exe
overwritten.

Pass /DR5000=1 to ISCC to build the R5000 installer ("IRIS (R5000)", its own
GUID and Program Files folder). Without the define nothing changes for the
R4400 installer — same AppId as before, so existing installs keep upgrading in
place rather than orphaning their uninstall entry.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
iris-gui pinned its iris dependency to chd,camera,jit,rex-jit,ultra64, so every
GUI build carried the v1 MIPS JIT and the N64 development board whether or not
the user could reach them. Neither is usable without setup out of band from the
GUI: the JIT needs IRIS_JIT=1 in the environment, and the dev board needs an
external gopher64 fork plus a POSIX shm bridge the App Store sandbox blocks
outright.

Move both behind passthrough features (`--features jit`, `--features ultra64`)
and cfg-gate the UI they own — the Ultra64 toggle, its Help window and menu
entry, and the About panel's ultra64 line. The Debug tab's JIT knobs stay put
but now say when there is no JIT behind them.

Two consequences worth noting:

- The About panel let "off (sandbox)" outrank not-compiled-in for jit/rex-jit.
  That read correctly while every build carried the JIT; a build without it
  would now name the wrong reason, so not-compiled-in is checked first.
- HELP.md's Ultra64 setup built without the feature and then told you to set
  [ultra64] enabled = true, which silently does nothing. It now names the flag
  for both the CLI and the GUI.

cranelift still arrives via rex-jit, so dropping `jit` sheds the MIPS
translator rather than the compiler backend.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@techomancer
techomancer merged commit 2cfddc6 into techomancer:main Aug 13, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants